https://bugzilla.gnome.org/show_bug.cgi?id=765134 shows
a stacktrace where we end up with arrow_gadget being NULL
despite the conditions for its presence being satisfied.
This commit makes sure we call update_arrow_gadget() whenever
any of the conditions changes. This should fix the reported
crash.
if (priv->submenu != submenu)
{
if (priv->submenu)
- gtk_menu_detach (GTK_MENU (priv->submenu));
+ {
+ gtk_menu_detach (GTK_MENU (priv->submenu));
+ priv->submenu = NULL;
+ }
if (submenu)
{
gtk_menu_attach_to_widget (GTK_MENU (submenu),
widget,
gtk_menu_item_detacher);
-
- update_arrow_gadget (menu_item);
}
+ update_arrow_gadget (menu_item);
+
if (gtk_widget_get_parent (widget))
gtk_widget_queue_resize (widget);
menu->priv->accel_group,
TRUE);
+ update_arrow_gadget (menu_item);
+
if (GTK_WIDGET_CLASS (gtk_menu_item_parent_class)->parent_set)
GTK_WIDGET_CLASS (gtk_menu_item_parent_class)->parent_set (widget, previous_parent);
}